import java.util.Random;

public class Test {
    //    给定一个很长的数组 (长度 1000w), 通过随机数的方式生成 1-100 之间的整数.
//            实现代码, 能够创建两个线程, 对这个数组的所有元素求和.
//    其中线程1 计算偶数下标元素的和, 线程2 计算奇数下标元素的和.
//            最终再汇总两个和, 进行相加
//    记录程序的执行时间.
    static class Counter {
        public int sum = 0;
        public int[] arr = new int[1000_0000];

        public Counter() {
            for (int i = 0; i < arr.length; i++) {
                arr[i] = new Random().nextInt(100);
            }
        }
    }

    public static void main(String[] args) throws InterruptedException {
        Counter counter = new Counter();
        Thread t1 = new Thread() {
            @Override
            public void run() {
                for (int i = 0; i < counter.arr.length; i += 2) {
                    counter.sum += counter.arr[i];
                }
            }
        };
        Thread t2 = new Thread() {
            @Override
            public void run() {
                for (int i = 1; i < counter.arr.length; i += 2) {
                    counter.sum += counter.arr[i];
                }
            }
        };
        t1.start();
        t2.start();
        t1.join();
        t2.join();
        System.out.println(counter.sum);
    }
}
